The cloud computing environment is an enhancement to the predecessor grid environment, whereby multiple grids and other computation resources may be further abstracted by a cloud layer, thus making disparate devices appear to an end-user as a single pool of seamless resources. These resources may include such things as physical or logical compute engines, servers and devices, device memory, storage devices.
Presently, computing resource allocation is accomplished in a variety of ways, including “harvested capacity.” Specifically, jobs in the cloud computing environment are performed based on their predetermined priority. Under such a methodology, a job performance algorithm such as the following would likely be implemented:
(a) first fulfill the needs of the highest priority job;
(b) then fulfill the needs of the second-highest priority job;
(c) then fulfill the needs of the third-highest priority job;
(d) and so forth, until all job needs are satisfied for a given period of time.
Such an algorithm, however, fails to consider many factors such as processing needs and income. Moreover, each job is looked at in isolation without giving consideration to job package as a whole. Accordingly, existing approaches can be inefficient and lack income effectiveness.